#ifndef OBJECTS_H
#define OBJECTS_H

#include <queue>
#include <set>
#include "Graphics.h"
#include "WZData.h"
using namespace std;
///////////////////////////////////////////////////////////////
// Stuff you'll never worry about
///////////////////////////////////////////////////////////////
class depth {
public:
	enum depth_objects {
		obj,
		tile
	};
	unsigned int size;
	int operator [](unsigned int index);
	void operator =(int value);
	depth();
private:
	int z[8];
};

class object{
public:
	object();
	~object();
	void sort();
	virtual void draw()=0;
	double x,y;
	depth z;
};

class object_depth{
public:
	bool operator()(object* a, object* b);
};

extern set<object*,object_depth> objects;

///////////////////////////////////////////////////////////////
// Define various objects here
///////////////////////////////////////////////////////////////
class tile : public object{
public:
	tile();
	void draw();
	sprite* spr;
};
class obj : public object{
public:
	obj();
	void draw();
	sprite* spr;
};


#endif